home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2006 June / PCpro_2006_06.ISO / files / freeware / openvip.exe / {app} / sdk / include / openvip / IMultiPass.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-02-01  |  5.1 KB  |  151 lines

  1. /*
  2.  * Generated by upf-idl C++ backend (upf ABI version: 2)
  3.  * Do not edit by hand!
  4.  */
  5.  
  6. #ifndef _UPF_IDL_OPENVIP_IMULTIPASS_IDL_H_
  7. #define _UPF_IDL_OPENVIP_IMULTIPASS_IDL_H_
  8.  
  9. #include <upf/cxx.h>
  10.  
  11. #if UPF_ABI_VERSION != 2
  12. #error "Headers generated for upf ABI different from the one you have installed, please regenerate them."
  13. #endif
  14.  
  15.  
  16. #include <upf/coretypes.h>
  17. #include <upf/IObject.h>
  18. namespace openvip 
  19. {
  20.     class IMultiPass : virtual public ::upf::IObject
  21.     {
  22.     public:
  23.     
  24.         virtual unsigned long GetPasses() = 0;
  25.         virtual void NextPass() = 0;
  26.     };
  27. }
  28. #include <upf/cxx_ptr.h>
  29. namespace upf {
  30. inline void __upf_dispatch__openvip_IMultiPass_GetPasses(::openvip::IMultiPass *_upf_data, upf_Arguments *_upf_marchalled_args)
  31. {
  32.     upf::Arguments _upf_args(_upf_marchalled_args);
  33.     unsigned long _upf_retval(_upf_data->GetPasses());
  34.     _upf_args << _upf_retval;
  35.     _upf_args.seek0();
  36. }
  37.  
  38. inline void __upf_dispatch__openvip_IMultiPass_NextPass(::openvip::IMultiPass *_upf_data, upf_Arguments *_upf_marchalled_args)
  39. {
  40.     _upf_data->NextPass();
  41. }
  42.  
  43.  
  44. template<> struct InterfaceTraits< ::openvip::IMultiPass >
  45. {
  46.     typedef ::openvip::IMultiPass value_type;
  47.  
  48.     static void _UPF_CALLING_CONVENTION dispatchFunction(void *obj, upf_MethodID method, upf_Arguments *args)
  49.     {
  50.         ::openvip::IMultiPass *ptr = static_cast< ::openvip::IMultiPass* >(obj);
  51.         if (method < (0 + __UPF_UPF_IOBJECT_OPCNT))
  52.         {
  53.             InterfaceTraits< ::upf::IObject >::dispatchFunction(static_cast< ::upf::IObject* >(ptr),
  54.                                                          method - (0), args);
  55.         }
  56.         else 
  57.         {
  58.             static void (*functions[])(::openvip::IMultiPass *, upf_Arguments *) = {
  59.             __upf_dispatch__openvip_IMultiPass_GetPasses,
  60.             __upf_dispatch__openvip_IMultiPass_NextPass,
  61.             NULL };
  62.             functions[method - (0 + __UPF_UPF_IOBJECT_OPCNT)](ptr, args);
  63.         }
  64.     }
  65.  
  66.     static const char* name()
  67.         { return "openvip.IMultiPass"; }
  68.  
  69.     static const IID& iid()
  70.     {
  71.         static IID _iid = {0xdc7b489b,0x8957155e,0x454ac998,0x10577e23,1,0};
  72.         return _iid;
  73.     }
  74.     
  75.     static const upf_uint8_t *typereg()
  76.     {
  77.         static const upf_uint8_t desc[] = { 
  78. 0,0,0,105,0,0,18,111,112,101,110,118,105,112,46,73,77,117,108,116,
  79. 105,80,97,115,115,220,123,72,155,137,87,21,94,69,74,201,152,16,87,126,
  80. 35,0,1,0,0,0,1,0,11,117,112,102,46,73,79,98,106,101,99,116,
  81. 0,2,0,9,71,101,116,80,97,115,115,101,115,0,13,117,110,115,105,103,
  82. 110,101,100,32,108,111,110,103,0,0,0,8,78,101,120,116,80,97,115,115,
  83. 0,4,118,111,105,100,0,0,0,0,0,0,155,0,0,11,117,112,102,46,
  84. 73,79,98,106,101,99,116,129,91,66,15,214,207,225,124,112,91,189,235,231,
  85. 44,230,242,0,1,0,0,0,0,0,4,0,6,105,110,99,82,101,102,0,
  86. 4,118,111,105,100,0,0,0,6,100,101,99,82,101,102,0,4,118,111,105,
  87. 100,0,0,0,14,113,117,101,114,121,73,110,116,101,114,102,97,99,101,0,
  88. 16,117,112,102,46,73,110,116,101,114,102,97,99,101,80,116,114,0,1,0,
  89. 7,117,112,102,46,73,73,68,0,12,105,110,116,101,114,102,97,99,101,95,
  90. 105,100,1,0,0,10,103,101,116,67,108,97,115,115,73,68,0,7,117,112,
  91. 102,46,67,73,68,0,0,0,0,0,0,10,2,0,7,117,112,102,46,73,
  92. 73,68,0,0,0,19,2,0,16,117,112,102,46,73,110,116,101,114,102,97,
  93. 99,101,80,116,114,0,0,0,26,1,0,7,117,112,102,46,67,73,68,2,
  94. 0,13,117,110,115,105,103,110,101,100,32,108,111,110,103,0,0,0,0 };
  95.         return desc;
  96.     }
  97.  
  98.     static bool query(value_type *instance, MultiPurposeHookArgs *data)
  99.     {
  100.         if (data->mode == _UPF_HOOK_MODE_QUERY_INTERFACE)
  101.         {
  102.             if (upf::checkIID(*(data->u.qi.iid), iid()))
  103.             {
  104.                 data->u.qi.retval.data = instance;
  105.                 data->u.qi.retval.function = dispatchFunction;
  106.                 return true;
  107.             }
  108.         }
  109.         else if (data->mode == _UPF_HOOK_MODE_INIT_CLASSINFO)
  110.         {
  111.             upf_middleware->funcs.merge_typeinfo(typereg());
  112.             data->u.ici.ciWrapper->addInterface(iid());
  113.         }
  114.        if (InterfaceTraits< ::upf::IObject >::query(instance, data)) return true;
  115.         return false;
  116.     }
  117. };
  118.  
  119. template<class Base, int Offset>
  120. class _ProxyCode_OPENVIP_IMULTIPASS : public _ProxyCode_UPF_IOBJECT< Base, 0 >
  121. {
  122.     virtual unsigned long GetPasses()
  123.     {
  124.         ArgumentsOwned _upf_args;
  125.         m_dispatch.function(m_dispatch.data, Offset+0+0+__UPF_UPF_IOBJECT_OPCNT, _upf_args.getMarchalled());
  126.         unsigned long _upf_retval;
  127.         _upf_args >> _upf_retval;
  128.         return _upf_retval;
  129.     }
  130.     virtual void NextPass()
  131.     {
  132.         ArgumentsOwned _upf_args;
  133.         m_dispatch.function(m_dispatch.data, Offset+1+0+__UPF_UPF_IOBJECT_OPCNT, _upf_args.getMarchalled());
  134.     }
  135. };
  136. #define __UPF_OPENVIP_IMULTIPASS_OPCNT ((0+__UPF_UPF_IOBJECT_OPCNT)+(2))
  137. template<> class Proxy< ::openvip::IMultiPass > : 
  138.     public _ProxyCode_OPENVIP_IMULTIPASS< _ProxyBase< ::openvip::IMultiPass >, 0 >
  139. {
  140. public:
  141.     Proxy(upf_Object *object, const upf_InterfaceData& dispatch)
  142.     {
  143.         init_proxy(object, dispatch);
  144.     }
  145.     virtual ~Proxy() {}
  146. };
  147.  
  148. } // namespace upf
  149.  
  150. #endif
  151.